During a memory read operation, memory controllers typically send commands to memory devices and then receive data from the memory devices. Propagation delays to and from the memory devices may vary. In addition, propagation delays within the memory controller may vary. A memory controller may wait a worst-case delay time before passing the received data to a requestor. When all memory devices are faster than the worst-case delay time, unnecessary latency may be introduced.